/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Modelo;

/**
 *
 * @author Carlos
 */
import Vista.Datos;
import java.io.*;
import java.awt.Image ;
import Vista.Grafico ;
import java.awt.MediaTracker;

public class Cuartel extends Militar implements Serializable {


    public static int longx=2;
    public static int longy=2;
    public static Objeto[] ArrTerrestres;
    public static int[] precio = {100, 0, 20, 0};
    public static int[][] precioU ={{100,0,0,0,1},{150,0,0,0,2},{200,0,0,0,4}};
    private char simbolo= 'C';
    public static int[] Tduracion={3,5,7};
    public final static int nivelRequerido = 1;
    public static char compatible = '_';
    public static Image imagen;
        public static void cargar(){
            MediaTracker mt = new MediaTracker( Grafico.applet ) ;
            imagen=Grafico.applet.getImage(Grafico.applet.getCodeBase(),"Imagenes\\cuartel.png");
            mt.addImage(imagen,0);
            try {
                mt.waitForAll();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    public void trueUsado(){
        usado=true;
    }
    public void falseUsado(){
        usado=false;
    }
    public boolean getUsado(){
        return usado;
    }
    public char getSimbolo(){
        return simbolo;
    }
    public Image getImagen(){
        return imagen;
    }
    public int getLongx(){
        return longx;
    }
    public int getLongy(){
        return longy;
    }
    public Cuartel(){
        super();
       // setImagen( imagen ) ;
        Juego.gold -= precio[0];
        Juego.experiencia++;
        //asignarTrabajo(3);
    }

    public void mostrar(){
	for(int i = 0; i < 3; i++){
            System.out.print((i+1) + ") ");
            if(i==0) System.out.print("Soldado");
            else if(i==1) System.out.print("Canhon");
            else System.out.print("Tanque");
            System.out.print("   Cuesta: ");
            if(precioU[i][0]>0) System.out.println( precioU[i][0]+" de gold ");
            if(precioU[i][1]>0) System.out.println( precioU[i][1]+" de silver ");
            if(precioU[i][2]>0) System.out.println( precioU[i][2]+" de madera ");
            if(precioU[i][3]>0) System.out.println( precioU[i][3]+" de petroleo ");
	}
    }

    public void asignarTrabajo(int indice){
        indice--;
	if(precioU[indice][4]<= Juego.nivel){
            if((Juego.gold  >= precioU[indice][0]) && Juego.silver   >=precioU[indice][1] &&
                Juego.madera  >=precioU[indice][2] && Juego.petroleo >=precioU[indice][3]){
                setEstado(indice);
                //  System.out.println("INDICEEEEEEEEEEEEEE "+ indice);
                indice=getEstado();
                setTiempoInicio(Juego.turno);
                Juego.gold = Juego.gold - precioU[indice][0];
                Juego.silver = Juego.silver -precioU[indice][1];
                Juego.madera = Juego.madera - precioU[indice][2];
                Juego.petroleo = Juego.petroleo - precioU[indice][3];
                setDuracion(Tduracion[indice]);
                //System.out.println("Se asigno el trabajo correctamente");
                Datos.mostrarPrincipal("Se asigno el trabajo correctamente");
                Juego.energia--;
            }
            else //System.out.println("No se tiene los recursos suficientes");
                Datos.mostrarPrincipal("No se tiene los recursos suficientes");
        }
        else //System.out.println("No se tiene el nivel suficiente");
            Datos.mostrarPrincipal("No se tiene el nivel suficiente");
    }

    public UnidadMilitar recolectarUnidad() {
        UnidadMilitar unidad=null;
        int a;
        a = getEstado();
       // System.out.println("ESTADOOOOOO "+ a);
        switch(getEstado()){
            case 0:
                unidad=new Soldado();
                break;
            case 1:
                unidad=new Canhon();
                break;
            case 2:
                unidad=new Tanque();
                break;
        }

        setEstado(-1);
        tiempoInicio = Juego.turno;
        return unidad;
    }

}
